package com.ship.dispatch.service;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.ship.dispatch.bean.Compatibility.QueryShipAffiliatedDetailsRq;
import com.ship.dispatch.bean.Compatibility.QueryShipAffiliatedPortCollectRq;
import com.ship.dispatch.bean.Compatibility.QueryShipAffiliatedToPortRq;
import com.ship.dispatch.bean.Compatibility.QueryShipToPortRq;
import com.ship.dispatch.bean.Compatibility.vo.*;
import com.ship.dispatch.bean.boats.QueryPortSisterRq;
import com.ship.dispatch.bean.boats.QueryShipInsideInfo;
import com.ship.dispatch.bean.boats.info.QueryBoatsPortSisterInfo;
import com.ship.dispatch.bean.boats.info.QueryBoatsVoyageMessagesInfo;
import com.ship.dispatch.bean.boats.info.QueryMonthlyCountInfo;
import com.ship.dispatch.bo.ItemStatisticsSimpleBo;

import java.util.List;

public interface BoatsVoyageMessageService {

    List<QueryBoatsVoyageMessagesInfo> queryShipExportVolumeTotal(String startDate, String endDate);

    List<QueryBoatsVoyageMessagesInfo> shipExportVolumeTotalByCountryName(String totalDate);

    List<QueryBoatsVoyageMessagesInfo> queryShipPortExportVolume(String startDate, String endDate);

    List<QueryBoatsVoyageMessagesInfo> queryhipPortEntranceVolume(String startDate, String endDate);

    List<QueryBoatsVoyageMessagesInfo> shipQuantityVoyage(String startDate, String endDate);

    Object monthlyDomesticVesselVoyage(ItemStatisticsSimpleBo bo);

    Object queryVoyageNumber(ItemStatisticsSimpleBo bo);

    Object queryMonthlyVoyageNumber(ItemStatisticsSimpleBo bo);

    List<QueryMonthlyCountInfo> queryMonthlyShipCount(String startDate, String endDate);

    List<QueryBoatsVoyageMessagesInfo> queryDischargeCapacity(String startDate, String endDate);

    List<QueryBoatsVoyageMessagesInfo> shipEntranceVolumeTotal(String startDate, String endDate);

    List<QueryBoatsVoyageMessagesInfo> shipEntranceVolumeTotalByCountryName(String totalDate);

    PageInfo<QueryShipToPortInfo> queryShipAffiliatedPortPage(QueryShipToPortRq rq);

    List<QueryShipToPortInfo> exportShipAffiliatedPort(QueryShipToPortRq rq);

    QueryShipAffiliatedDetailsInfo queryShipAffiliatedPortDetails(QueryShipAffiliatedDetailsRq rq);

    PageInfo<QueryShipAffiliatedPortCollectInfo> queryShipAffiliatedPortCollect(QueryShipAffiliatedPortCollectRq rq);

    List<QueryShipAffiliatedPortCollectInfo> exportShipAffiliatedPortCollect(QueryShipAffiliatedPortCollectRq rq);

    List<QueryBoatsPortSisterInfo> queryBoatsPortSisterList(QueryPortSisterRq rq);

    String queryShipNameByImo(String imo);

    List<String> queryMessage(String type);

    PageInfo<QueryShipAffiliatedToPortPageInfo> queryShipAffiliatedToPortPage(QueryShipAffiliatedToPortRq rq);

    List<QueryShipAffiliatedToPortPageInfo> exportShipAffiliatedToPort(QueryShipAffiliatedToPortRq rq);

    PageInfo<QueryShipToPortInfo> queryPortAffiliatedShipPage(QueryShipToPortRq rq);

    PortAffiliatedShipInfo queryPortAffiliatedShipByImo(QueryShipAffiliatedDetailsRq rq);

    PageInfo<QueryPortAffiliatedToShipInfo> queryPortAffiliatedToShip(QueryShipAffiliatedToPortRq rq);

    List<QueryPortAffiliatedToShipInfo> exportPortAffiliatedToShip(QueryShipAffiliatedToPortRq rq);

    List<QueryShipInsideInfo> queryShipCountryInside(String startDate, String endDate);

    Object queryEntranceTrade(String startDateStr, String endDateStr);

    Integer queryVoyageNumberByChina(String startDate, String endDate);

    Integer queryExportVolumeTotal(String startDate, String endDate);
}
